package controllers

import (
	"html/template"

	"github.com/astaxie/beego"
)

//申明一个Test控制器，类似申明 Test控制器类
type TestController struct {
	//嵌入beego控制器,类似基础 beego控制器，拥有beego控制器的所有方法
	beego.Controller
}

//重写get方法
func (t *TestController) Get() {
	//设置模板数据
	t.Data["Title"] = "测试控制器"
	t.Data["Content"] = "测试内容"

	//设置模板名称
	t.TplName = "test.html"
}

func (t *TestController) Test() {
	//获取GET参数
	name := t.Input().Get("name")
	//设置模板数据
	t.Data["Title"] = "测试控制器-自定义Method"
	t.Data["Content"] = "测试内容,GET参数-name=" + name

	//设置xsrf数据
	t.Data["xsrfdata"] = template.HTML(t.XSRFFormHTML())

	//设置模板名称
	t.TplName = "test.html"
}

func (t *TestController) Test2() {
	//输出字符串
	t.Ctx.WriteString("123ww3")
	//终止运行
	t.StopRun()
}

func (t *TestController) OutputJson() {

	t.Data["json"] = map[string]interface{}{"name": "jirenyou"}
	t.ServeJSON()

	t.StopRun()
}

func (t *TestController) Logs() {
	beego.Emergency("this is emergency")
	beego.Alert("this is alert")
	beego.Critical("this is critical")
	beego.Error("this is error")
	beego.Warning("this is warning")
	beego.Notice("this is notice")
	beego.Informational("this is informational")
	beego.Debug("this is debug")
	t.StopRun()
}
